using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using QFramework;
using UnityEngine;

namespace Bingo.API.UI
{
    /// <summary>
    /// UI服务
    /// </summary>
    public interface IUI
    {
        void Init();

        void OpenUI<T>(string uiBehaviourName, IUIData uiData = null, string assetBundleName = null) where T : UIBasePanel;

        void CreateUI<T>(string uiBehaviourName, IUIData uiData = null, string assetBundleName = null) where T : UIBasePanel;

        void ShowUI<T>() where T : UIBasePanel; 

        void HideUI<T>() where T : UIBasePanel;

        void CloseUI<T>() where T : UIBasePanel;

        void CloseUI(string name);

        Task ShowLoading();

        Task HideLoading();
        
        T GetUI<T>() where T : UIBasePanel;
    }
}